package avaliacao.Handler;

import avaliacao.Constantes;
import avaliacao.DAO.DAOUniversidade;
import avaliacao.DTO.DTOAvaliador;
import avaliacao.DTO.DTOUniversidade;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BuscaUniversidadeHandler implements HandlerInterface{

    DAOUniversidade daoUniversidade = new DAOUniversidade();

    public String process(HttpServletResponse response, HttpServletRequest request) {

        String submitButton = request.getParameter(Constantes.MEC_ATRIBUTO_SUBMITBUTTON);

        if(submitButton.equals(Constantes.MEC_SUBMITBUTTON_AUTOCOMPLETAR)){
            String parametroBusca = request.getParameter(Constantes.MEC_ATRIBUTO_PARAMETRO_BUSCA);
            request.setAttribute(Constantes.MEC_ATRIBUTO_PARAMETRO_BUSCAR,parametroBusca);

            //String currentpage = request.getParameter("currentpage");
            //System.out.println("autocomplete - current page: "+currentpage);
            //String lastpage = request.getParameter("lastpage");
            //String paginador = request.getParameter("paginador");

            //int currpage = 1;
            //if(currentpage!=null && !currentpage.isEmpty())
              //  currpage = (new Integer(currentpage)).intValue();

            /*int pagesize = 5;
            int offset = pagesize * (currpage-1);*/
            if(parametroBusca!=null && !parametroBusca.isEmpty()){
                ArrayList<DTOUniversidade> listaUniversidades = (new DAOUniversidade()).getUniversidadeBuscaInfo(parametroBusca);
                //(new ProprietariosDAO()).getProprietarioByAny(parametro_busca,offset,pagesize);
                request.setAttribute(Constantes.MEC_ATRIBUTO_UNIVERSIDADES, listaUniversidades);
                request.setAttribute(Constantes.MEC_ATRIBUTO_STATUS,Constantes.MEC_OK_BUSCA);
            }

            /*PaginacaoDTO paginacao = new PaginacaoDTO();
            paginacao.setLastpage(8);
            paginacao.setCurrentpage(currpage);
            request.setAttribute("PAGINACAO", paginacao);

            DialogoDTO dialogo = new DialogoDTO(NivelEnum.NORMAL,"RESULTADO DA BUSCA...");
            request.setAttribute("DIALOGO", dialogo);*/

            return "/buscaUniversidade.jsp";
        }else if(submitButton.equals(Constantes.MEC_SUBMITBUTTON_EXIBIR_EDICAO))
        {
            String resultado = Constantes.MEC_OK_BUSCA;
            DTOUniversidade universidadeEditar = new DTOUniversidade();
            DTOAvaliador avaliadorLogado = (DTOAvaliador)request.getSession().getAttribute(Constantes.MEC_ATRIBUTO_AVALIADOR);
            int idUniversidadeEditar = Integer.parseInt(request.getParameter(Constantes.MEC_ATRIBUTO_UNIVERSIDADE_SELECIONADA));
            universidadeEditar.setId(idUniversidadeEditar);

            if(!avaliadorLogado.getGrupo().equals(Constantes.MEC_GRUPO_ADMIN))
            {
                resultado = Constantes.MEC_ERR_PERMISSAO;
            }
            else
            {
               if(!daoUniversidade.getUniversidadeByID(universidadeEditar))
                   resultado = Constantes.MEC_ERR_BUSCA;
            }

            if(!resultado.equals(Constantes.MEC_OK_BUSCA))
                return "/buscaUniversidade.jsp";

            request.setAttribute(Constantes.MEC_ATRIBUTO_STATUS, resultado);
            request.setAttribute(Constantes.MEC_ATRIBUTO_RESULT_BUSCA, universidadeEditar);

            return "/edicaoUniversidade.jsp";
        }
        return "/index.jsp";

    }

}
